home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 43 / Amiga Format CD43 (1999)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1999-09].iso / -serious- / programming / c / pmm / doku / democonfig_eng / projekt < prev    next >
Text File  |  1999-06-14  |  8KB  |  184 lines

  1. ; This is a project. Here are a lot of setup's, the programs
  2. ; and the phadnames for source, objects und exe-files.
  3. ; The *-entry is a general setting, it will work as default
  4. ; The programs can use it or set own setup's
  5. ; $1, $2 ... $9 (This are variables for pmm.cfg)
  6. ; $$.c=  Phat to source, if not identical with PFAD=
  7. ;
  8. ; Important:
  9. ; This file is only use by the compiler. The pathes that will be
  10. ; scan for include by the depend-scanner comes from pmm.userincludes.
  11. ; pmm.userincludes: every line ONE scanpath. Don't set pathes to the
  12. ; compilerincludes. Only include/libraries if you really use that.
  13. ; Else alle include-.h-files are checked everytime you start compiling
  14. ; and that cost many time for nothing.
  15. ; After a compilerupdate where the .h-files really changed best work
  16. ; is to remake all files.
  17. ; Note, that the depend-pathes are used for all programs same. The
  18. ; sourcedirectory is everytime another and only the real include-dir's
  19. ; are scanned.
  20. ; The depend look everytime at the source-home-dir of the program.
  21. ; The compiler dosn't do that. Use the pseudoinclude -I$I to set
  22. ; up the homedir for the compiler. Pmm do this not alone, because
  23. ; I will be open in for all things in future.
  24. ;
  25. ; Lines with MAKE at the beginning:
  26. ; First the 1%, 2% ... etc. now become content
  27. ; MAKE=5    means: Start Pmm without a makeoption (like only make) internal
  28. ;                  use is equal 5 that set as 68040 in my default).
  29. ; MAKE:xyz=1,2,3   This means, if you start pmm with -o xyz the system
  30.                    make the type 1, 2 and 3. 
  31. ; MAKE:ALL=....    Important! This set what be happend if Pmm is starting
  32. ;                  with A, Q, I or -o ALL.
  33. ; This all are additives to pmm.cfg. But there are more things:
  34. ;
  35. ; Source und sonstige Files:
  36. ; $&.c ist source.c     Preprozessor Input  ( .c -> vcpp )
  37. ; $&.i ist soirce.i     Preprozessor Output ( .c -> vcpp -> .i )
  38. ; $&.a ist source.asm   Compiler Output     ( .i -> vbcc -> .asm )
  39. ; $&.s ist source.s     Compiler Output     ( .i -> vbcc -> .s (vsc) -> .asm )
  40. ; $&.o ist source.o     Assembler Output    ( .asm -> Assembler -> .o [ -> Linker] )
  41. ; $$   ist PROGRAMM     Letzter Output (Programm, Library, Lib etc.)
  42. ; vsc ist der Scheduler, siehe Docs für Warp-Version!!!
  43. ; Dies alles geschieht automatisch. Für .i, .a, .s und .o werden nur noch die
  44. ; Pfade festgelegt. Bei $$ der Name des Programmes INCL. Pfad, wenn gewünscht.
  45. ; Falls nicht, wird a.out imaktuellen Verzeichnis benutzt. Siehe $$ unten...
  46. ; $L Ergänzung der .Lib/.a-Dateien für den Linker.
  47. ;
  48. ; Warum dieser Eintrag, ginge doch genauso gut in Pmm.Cfg?
  49. ; WEIL Pmm.Cfg nur Dinge enthalten sollte die allgemein gültig sind.
  50. ; Diese Projektdatei wird künftig mehrfach angelegt werden können, so
  51. ; das Projekte in Sub-Projekte unterteilt werden können, bzw. auch
  52. ; mehrere Projekte möglich werden. Dann sollte hier das stehen, was
  53. ; für das Projekt vom sonstigen Standard abweicht.
  54. ;
  55. :BEGIN *
  56. MAKE=5
  57. MAKE:60=5,6
  58. MAKE:PPC=7,8
  59. MAKE:ALL=1,2,3,4,5,6,7,8
  60. 1%$&.o=obj/000/
  61. 2%$&.o=obj/010/
  62. 3%$&.o=obj/020/
  63. 4%$&.o=obj/030/
  64. 5%$&.o=obj/040/
  65. 6%$&.o=obj/060/
  66. 7%$&.o=obj/ppc/
  67. 8%$&.o=obj/wos/
  68. $&.i=T:
  69. $&.a=T:
  70. $&.s=T:
  71. $$=a.out
  72. $L=Lib:DOSLIB_000.Lib Lib:All.Lib
  73. 5%$L=Lib:DOSLIB_040.Lib Lib:All_040.Lib
  74. 6%$L=Lib:DOSLIB_060.Lib Lib:All_040.Lib
  75. 7%$L=Lib:DOSLIB_ppc.a Lib:All_ppc.a
  76. 8%$L=Lib:DOSLIB_wos.a Lib:All_wos.Lib
  77. $o=T:LinkOBJ
  78. :END
  79. ;    <- Das END in der vorigen Zeile beendet die Config. AB hier kann
  80. ;       wieder ein BEGIN gesetzt werden. $o ist der Name für ein Temp-File
  81. ;       das die Lise der Objektfiles für den Linker enthält. Diese wird
  82. ;       von Pmm erstellt.
  83. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  84. ;
  85. ; DEMO-EINTRAG -- KEINE FUNKTION --
  86. ; ----------------------------------
  87. ; DOSLIB ist ein SPECIAL, der Linker wird übersteuert mit L=PmmLibr!
  88. ;        Hier entsteht eine .LIB, gesteuert über den eigenen Libr-Befehl
  89. ;        Um Libr wie einen Linker funktionieren zu lassen ist die
  90. ;        Steuerung F aufgenommen worden. Diese Version eines Libr könnte
  91. ;        auch ohne Probleme z.B. in vc integriert werden. Da hätte nur
  92. ;        mal jemand früher drauf kommen müssen (meine erste Version war
  93. ;        ein List-Batch wie bei 7% noch zu sehen).
  94. ;        Y0 startet einen Stub-Batch der weitere Link-Libs erstellt, wenn
  95. ;        dies notwendig ist (siehe Verzeichnis Batch).
  96. ;        Bei PPC wird Y1 als Erweiterung von L= eingesetzt, so kommt der
  97. ;        Batch zur Ausführung und das .a-File für PPC wird gebildet. 
  98. ;
  99. :BEGIN DOSLIB
  100. PFAD=Proj:DOSLIB
  101. $5=-Ivinclude: -IInclude: -I$I
  102. 7%$5=-Ivincludeppc: -IInclude: -I$I
  103. 8%$5=-Ivincludewos: -IInclude: -I$I
  104. 1%$$=Lib:DOSLIB_000.Lib
  105. 2%$$=Lib:DOSLIB_010.Lib
  106. 3%$$=Lib:DOSLIB_020.Lib
  107. 4%$$=Lib:DOSLIB_030.Lib
  108. 5%$$=Lib:DOSLIB_040.Lib
  109. 6%$$=Lib:DOSLIB_060.Lib
  110. 7%$$=Lib:DOSLIB_ppc.a
  111. 8%$$=Lib:DOSLIB_wos.Lib
  112. $o=T:LibList
  113. 1%L=PmmLibr F Lib:DosLib_000 $o
  114. 2%L=PmmLibr F Lib:DosLib_010 $o
  115. 3%L=PmmLibr F Lib:DosLib_020 $o
  116. 4%L=PmmLibr F Lib:DosLib_030 $o
  117. 5%L=PmmLibr F Lib:DosLib_040 $o
  118. 6%L=PmmLibr F Lib:DosLib_060 $o
  119. 7%L=List Proj:DOSLIB/obj/ppc/#?.o lformat="ppc-amigaos-ar q Lib:DOSLIB_ppc.a %s%s" >Ram:LibList
  120. 8%L=PmmLibr F Lib:DosLib_wos $o
  121. 5%X5=Execute Pmm:Batch/ManProto.s Proj:DOSLIB Include:DOSLIB_protos.h
  122. Y0=Execute Pmm:Batch/MakeStubAll.s
  123. 7%Y1=Execute Ram:LibList
  124. :END
  125. ;
  126. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  127. ;
  128. ; Als Demo habe ich das zum vbcc-Compiler gehörende Programm vc gewählt
  129. ; PFAD=    Wo liegen die Sourcen?
  130. ; $9=      Variable, wird in Pmm.Cfg eingefügt, vc muß mit -DAMIGA übersetzt werden
  131. ; $$=      Executable (hier gleich 8 unterschiedliche, aufgeteilt in eigene Verzeich-
  132. ;          nissse in denen auch die .o-Files gelagert werden). Mag etwas übertrieben
  133. ;          aussehen, aber bei 100 .c-Files kämen 800 .o-Files raus. Wer's nicht, oder
  134. ;          anders möchte kann sich das ja umstellen.
  135. ; $L       Link-Lib, Erweiterung zum Standard, hier auskommentiert, vc braucht meine
  136. ;          persönlichen Files nicht. Das muß auch jede Nutzer selber einrichten.
  137. ; $o       Obj-Liste für den Linker (Temp-File)
  138. ; X0       Aufruf Programmes VOR dem Make z.b. Versionsdumper
  139. ; Y0       Copy der 68040-Version ins vbcc-bin-Verzeichnis (zur Sicherheit aber
  140. ;          unter anderem Namen). Und, als Demo, 4 der maximal 8 Versionen werden
  141. ;          kopiert.
  142. ;
  143. :BEGIN vc
  144. PFAD=vbcc://frontend
  145. $9=-DAMIGA
  146. 1%$$=obj/000/vc
  147. 2%$$=obj/010/vc
  148. 3%$$=obj/020/vc
  149. 4%$$=obj/030/vc
  150. 5%$$=obj/040/vc
  151. 6%$$=obj/060/vc
  152. 7%$$=obj/ppc/vc.elf
  153. 8%$$=obj/wos/vc
  154. ;
  155. ;     Die folgenden Zeilen definieren .Lib's für den Linker.
  156. ;     Sie sind jetzt auskommentiert, da das eigene Lib's sind und vc
  157. ;     braucht sie definitiv nicht.
  158. ;
  159. ;$L=Lib:DOSLIB_000.Lib Lib:All.Lib
  160. ;5%$L=Lib:DOSLIB_040.Lib Lib:All_040.Lib
  161. ;6%$L=Lib:DOSLIB_060.Lib Lib:All_040.Lib
  162. ;7%$L=Lib:DOSLIB_ppc.a Lib:All_ppc.a
  163. ;8%$L=Lib:DOSLIB_wos.Lib Lib:All_wos.Lib
  164. $o=T:LinkVC
  165. 5%X0=Echo "Ich simuliere einen Versionsdumper, der aber nur bei 68040 anläuft."
  166. 1%Y0=Copy obj/000/vc vbcc://bin/vc_000
  167. 5%Y0=Copy obj/040/vc vbcc://bin/vc_040
  168. 7%Y0=Copy obj/ppc/vc.elf vbcc://bin/vc_ppc
  169. 8%Y0=Copy obj/040/vc vbcc://bin/vc_wos
  170. :END
  171.  
  172. ; :BEGIN xxx ist der Anfang einer Programmdefinition. Diese muß mit :END beendet
  173. ; werden. Der Name hinter BEGIN hat keine Bedeutung für's Compilat, er verbindet
  174. ; jedoch diese Definition mit den Dateien List_xxx und Work_xxx und ist auch der
  175. ; Parameter für Pmm 'Pmm -p xxx'. Der Programmname den der Compiler erzeugt ist
  176. ; in $$ festgelegt, ggf. auch mehrmals (siehe oben). BEGIN/END dürfen immer nur
  177. ; im Wechsel genau EINMAL benutzt werden. Alle anderen Zeilen können mit #%, also
  178. ; 0%, 1% ... 9% CPU-typisch gesetzt werden. An Y0 ist zu erkennen, wie eine
  179. ; Funktion nur bei einzelnen CPU's benutzt wird. $L zeigt eine Variante wo es
  180. ; einen Standard-Wert gibt, der in Einzelfällen verändert ist. $$ wiederum ist
  181. ; für alle CPU's einzeln festgelegt. PFAD ist die letzte Möglichkeit, nur eine
  182. ; Definition für alle ($9 und $o dito).
  183.